package com.easyjava.service.impl;

import com.easyjava.entity.query.SimplePage;
import com.easyjava.enums.PageSize;
import com.easyjava.entity.vo.PaginationResultVO;
import com.easyjava.entity.po.ProductInfo;
import com.easyjava.entity.query.ProductInfoQuery;
import com.easyjava.mappers.ProductInfoMapper;
import com.easyjava.service.ProductInfoService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
/**
 * @Description:商品信息Service
 * @auther:江哥
 * @date:2025/11/23
 */
@Service("productInfoMapper")
public class ProductInfoServiceImpl implements ProductInfoService{

	@Resource
	private ProductInfoMapper<ProductInfo,ProductInfoQuery> productInfoMapper;

	/**
	 * 根据条件查询列表
	 */
	public List<ProductInfo> findListByParam(ProductInfoQuery query) {
		return this.productInfoMapper.selectList(query);
	}

	/**
	 * 根据条件查询数量
	 */
	public Long findCountByParam(ProductInfoQuery query) {
		return this.productInfoMapper.selectCount(query);
	}

	/**
	 * 分页查询
	 */
	public PaginationResultVO<ProductInfo> findListByPage(ProductInfoQuery query) {
		Long count = this.findCountByParam(query);
		Integer pageSize = query.getPageSize() == null ? PageSize.SIZE15.getSize() : query.getPageSize();
		SimplePage page = new SimplePage(query.getPageNo(), count, pageSize);
		query.setSimplePage(page);
		List<ProductInfo> list = this.findListByParam(query);
		PaginationResultVO<ProductInfo> result = new PaginationResultVO(count, page.getPageSize(), page.getPageNo(), page.getPageTotal(), list);
		return result;
	}

	/**
	 * 新增
	 */
	public Long add(ProductInfo bean) {

	}

	/**
	 * 批量新增
	 */
	public Long addBatch(List<ProductInfo> listBean) {

	}

	/**
	 * 批量新增或修改
	 */
	public Long addOrUpdateBatch(List<ProductInfo> listBean) {

	}

	/**
	 * 根据Id查询
	 */
	public ProductInfo getById(Integer id) {

	}

	/**
	 * 根据Id更新
	 */
	public Long updateById(ProductInfo bean, Integer id) {

	}

	/**
	 * 根据Id删除
	 */
	public Long deleteById(Integer id) {

	}

	/**
	 * 根据Code查询
	 */
	public ProductInfo getByCode(String code) {

	}

	/**
	 * 根据Code更新
	 */
	public Long updateByCode(ProductInfo bean, String code) {

	}

	/**
	 * 根据Code删除
	 */
	public Long deleteByCode(String code) {

	}

	/**
	 * 根据SkuTypeAndColorType查询
	 */
	public ProductInfo getBySkuTypeAndColorType(Integer skuType, Integer colorType) {

	}

	/**
	 * 根据SkuTypeAndColorType更新
	 */
	public Long updateBySkuTypeAndColorType(ProductInfo bean, Integer skuType, Integer colorType) {

	}

	/**
	 * 根据SkuTypeAndColorType删除
	 */
	public Long deleteBySkuTypeAndColorType(Integer skuType, Integer colorType) {

	}


}